正则表达式之多种格式的电话号码匹配 您所在的位置:网站首页 电话号码 空格 正则表达式之多种格式的电话号码匹配

正则表达式之多种格式的电话号码匹配

2023-09-06 15:27| 来源: 网络整理| 查看: 265

\w - 匹配字母或数字或下划线或汉字(我试验下了,发现 3.x 版本可以匹配汉字, 但 2.x 版本不可以) \s - 匹配任意的空白符 ^ - 匹配字符串的开始 $ - 匹配字符串的结束 2. \S 其实就是\s 的反义,任意不是空白符的字符。同理,还有: \W - 匹配任意不是字母,数字,下划线,汉字的字符 \D - 匹配任意非数字的字符 \B - 匹配不是单词开头或结束的位置 [a]的反义是[^a],表示除 a 以外的任意字符。[^abcd]就是除 abcd 以外的任意字 符。 3. 之前我们用过*、+、{}来表示字符的重复。其他重复的方式还有: ? - 重复零次或一次 {n,} - 重复 n 次或更多次 {n,m} - 重复 n 到 m 次 正则表达式不只是用来从一大段文字中抓取信息,很多时候也被用来判断输入的 文本是否符合规范,或进行分类。来点例子看看: ^\w{4,12}$ 这个表示一段 4 到 12 位的字符,包括字母或数字或下划线或汉字,可以用来作 为用户注册时检测用户名的规则。(但汉字在 python2.x 里面可能会有问题) \d{15,18} 表示 15 到 18 位的数字,可以用来检测身份证号码 ^1\d*[x]? 以 1 开头的一串数字,数字结尾有字母 x,也可以没有。有的话就带上 x。

转义字符\。如果我们确实要匹配.或者*字符本身,而不 是要它们所代表的元字符,那就需要用\.或\*。\本身也需要用\\。

tel ='(021)88776543 010-55667890 02584453362 0571 66345673 ' data1=re.findall(r'\(?0\d{2,3}[) -]?\d{7,8}',tel) print(data1) tel2 ='(021 88776543 010-55667890 02584453362 0571 66345673 ' #\(0\d{2,3}\)\d{7,8}表示匹配出(021 88776543 而0\d{2,3}[ -]?\d{7,8}匹配出后三个 data2=re.findall(r'\(0\d{2,3}\)\d{7,8}|0\d{2,3}[ -]?\d{7,8}',tel2) print(data2) """ (1) \(? 解释:()在正则表达式里也有着特殊的含义,所以要匹配字符"(",需要用"\(" 而 ?表示这个括号是可有可无的。 (2)0\d{2,3}表示区号,0xx 或者 0xxx就是0开头0xx三位或者0xxx四位 (3)[) -]? 表示在区号之后跟着的可能是")" 或" "或"-",也可能什么也没有。 (4)\d{7,8} 表示7 或 8 位的电话号码 55667890 66345673 88776543 """

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有